home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / demovers / scripter / demo / birthday.sic next >
Text File  |  1998-09-26  |  2KB  |  107 lines

  1. //ACE-SICPAR 4 0092 
  2. const DAY=3, MONTH=4, YEAR=5;
  3.  
  4. heute = localtime();
  5. tag = heute[DAY];
  6. mon = heute[MONTH]+1;
  7. jahr = heute[YEAR]+1900;
  8.  
  9. sec = mktime(heute);
  10.  
  11. if (address("jinnee")) {
  12.     /*
  13.      * Datei mit Terminen (birthday.dat) im aktuellen Verzeichnis
  14.      * zeilenweise einlesen und Datum vergleichen
  15.      * Zeilenaufbau: tt.mm.jjjj text
  16.      */
  17.     cnt = 0;
  18.     pcnt = 0;
  19.     past.length = 12;
  20.     zeilen.length = 12;
  21.     while (getline("birthday.dat", line)) {
  22.  
  23.         ltag = substr(line, 0, 2);
  24.         if (ltag == "XX") ltag = tag;
  25.  
  26.         lmon = substr(line, 3, 2);
  27.         if (lmon == "XX") {
  28.             lmon = mon;
  29.             /*
  30.              * mit folgenden Zeilen funktioniert zwar
  31.              *    "01.XX.XXXX" (heute ist der 31.)
  32.              * aber vergangene Termine fehlen dann, sofern sie
  33.              * Platzhalter benutzen
  34.              */
  35. //-             if (ltag<tag) {
  36. //-                 ++lmon;
  37. //-                 if (lmon==13) lmon = 1;
  38. //-             }
  39.         }
  40.  
  41.         ljahr = substr(line, 6, 4);
  42.         if (ljahr == "XXXX") {
  43.             ljahr = jahr;
  44.             if (lmon<mon) ++ljahr;
  45.         }
  46.  
  47.         heute[DAY] = ltag+0;
  48.         heute[MONTH] = lmon-1;
  49.         heute[YEAR] = ljahr-1900;
  50.         lsec = mktime(heute);
  51.  
  52.         temp = (lsec-sec)/86400;
  53.  
  54.         /*
  55.          * vergangene Termine sammeln wir in einem extra Array,
  56.          * mit dessen Daten wir die Ausgabe ggf auffüllen
  57.          */
  58.         if (temp >= -5 && temp < 0) {
  59.             if (pcnt<10) {
  60.                 past[pcnt++] = "-t 9";
  61.                 sprintf(past[pcnt++], "%02d.%02d %s", ltag, lmon,
  62.                     substr(line, 11));
  63.             }
  64.         }
  65.         if (temp >= 0 && temp < 10) {
  66.             zeilen[cnt++] = temp == 0 ? "-t 2" : "-t 1";
  67.             sprintf(zeilen[cnt], "%02d.%02d %s", ltag, lmon,
  68.                 substr(line, 11));
  69.             if (++cnt == 12) break;
  70.         }
  71.     }
  72.  
  73.     if (cnt+pcnt) {
  74.         /*
  75.          * die aktuellsten bereits vergangenen Termine eintragen
  76.          */
  77.         while (pcnt && cnt < 12) {
  78.             insert(zeilen, 0, 2);
  79.             zeilen[1] = past[--pcnt];
  80.             zeilen[0] = past[--pcnt];
  81.             cnt += 2;
  82.         }
  83.  
  84.         /*
  85.          * Array passend verkleinern
  86.          */
  87.         zeilen.length = cnt;
  88.  
  89.         /*
  90.          * Das hier wäre die herkömmliche Methode: Array bis zum
  91.          * Ende mit leeren Strings auffüllen
  92.          */
  93. //-         while (cnt < zeilen.length) zeilen[cnt++] = "";
  94.  
  95.         NoteOpen("-i NTIZ", "-b -1", "-l 1", "-f 122", "-p 10", zeilen);
  96.     }
  97. }
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.